package org.lboot.jpa.service;

import org.springframework.data.domain.Example;
import org.springframework.transaction.annotation.Transactional;

import java.io.Serializable;
import java.util.List;

public interface BatchService <Entity extends Serializable,KeyType>{

    /**
     * 批量写入 & 覆盖
     * @param list
     * @return
     */
    List<Entity> batchSave(List<Entity> list);
    /**
     * 批量查询
     * @param list
     * @return
     */
    List<Entity> batchGet(List<KeyType> list);

    /**
     * 批量删除
     * @param list
     */
    void batchDelete(List<KeyType> list);

    /**
     * 获取全部数据
     * @return
     */
    List<Entity> getAll();

    /**
     * 获取全部 符合 Example
     * @param example
     * @return
     */
    List<Entity> getAll(Example<Entity> example);

}
